/**
 *  一个模块是一个文件。
 *          
 *            导出多个类，多个函数，多个变量？
 *               1,需要导出多少类/函数/变量,就写多少次exports
 *               2,使用module批量导出
 *
 *            JavaScript本身是不支持模块化的，只不过后来一些社区的大佬制定了一个模块规范，
 *            主要分为两种，一个是用于服务器的CommonJs规范,比如nodeJs中的require；
 *                        另一个是用于客户端的AMD规范，比如requireJs。
 *            
 *            后来ES6提供了通用的模块化方案：ES6专门提供了import和export这两个小可爱
 *
 *
 *            实际上最终的模块都会被加上
 *            (function (require,exports,module){
 *                模块文件中的代码
 *            })();
 *
 *            这就是为什么模块中的变量全是局部变量的原因
 */


 /**
  * 
  * npm nodejs package manager
  * 
  * 	自动解决依赖
  * 
  * 	安装 npm install **
  * 	卸载 npm uninstall **
  * 	升级 npm update ** (更新版本)
  * 	发布 npm publish **  [发布之前需要先登录,登录要密码,发布的东西要在package.json中说明,然后才可以发布}
  * 
  * 	如果包是我自己发布的我新添加了功能,该怎么发布这个包呢？
  * 		答：更改package.json中版本号重新发布即可
  */